<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>对象类型</title>
    <script>
        // 使用js内置对象Object
        function f1(){
            let obj = new Object();
            // 可以使用对象.属性=属性值的方式为object对象赋予一个属性
            // 且为该属性赋值
            // 此处相当于set方法
            // 在Object中,拥有一切属性
            obj.id = 1;
            obj.name = "admin";
            obj.aaa = "aaa";
            // 此处相当于get方法
            console.log(obj.id);
            console.log(obj.name);
            console.log(obj.aaa);
        }

        // 自定义对象
        // 对象的属性名也是自定义
        function f2(){
            let user = new User(1,"admin","123456");
            console.log(user);
        }
        function User(id,username,password){
            this.id = id;
            this.username = username;
            this.password = password;
        }

        function f3(){
            // 使用JSON语法进行定义
            // JSON本质上也是一个对象
            let user = {"id":1,"username":"admin","password":"123456"};
            console.log(user);
        }

        function f4(){
            // 使用JSON格式的字符串来定义对象
            let user = "{'id':1,'username':'admin','password':'123456'}";
            console.log(typeof user);
            // 将JSON格式的字符串转换成JSON对象
            // 有两种方式可以实现转换
            // 1.通用型:evel()
                // 该方式对于字符串格式没有要求
                // 安全性较低
            user = eval("("+user+")");

            console.log(user);
            // 2.JSON.parse()
                // 该方式对于字符串有要求,字符串必须使用单引号
                // 该方式安全性较高
            // user = JSON.parse(user) 报错
            let user2 = '{"id":1,"username":"admin","password":"123456"}';
            console.log(typeof user2);
            // user2 = eval("("+user2+")");
            user2 = JSON.parse(user2);
            console.log(user2)
        }
    </script>
</head>
<body>
<button onclick="f1()">对象定义方式一</button><br>
<button onclick="f2()">对象定义方式二</button><br>
<button onclick="f3()">对象定义方式三</button><br>
<button onclick="f4()">对象定义方式四</button><br>
</body>
</html>